import UnityPy

from utils.JSON的输入和输出 import 写入json
from utils.创建文件夹 import Create_folder
from utils.文件夹下的所有文件 import getFilesList


def extract_file(src, dst):
    env = UnityPy.load(src)
    for obj in env.objects:
        obj_name = str(obj.container).split("/")[-1].split(".")[0].upper()
        if obj.type.name == "TextAsset":
            # 导出资源
            data = obj.read()
            with open(f"{dst}/{obj_name}", "wb") as f:
                f.write(bytes(data.script))


jp_src_dir = "data/IDS/日文"
en_src_dir = "data/IDS/英文"

Create_folder("output/IDS导出的资源/日文")
Create_folder("output/IDS导出的资源/英文")

for file_name in getFilesList(jp_src_dir):
    src = f"{jp_src_dir}/{file_name}"
    dst = "output/IDS导出的资源/日文"
    extract_file(src, dst)

for file_name in getFilesList(en_src_dir):
    src = f"{en_src_dir}/{file_name}"
    dst = "output/IDS导出的资源/英文"
    extract_file(src, dst)

# 下面顺便生成一下 ids map -> 给自适应补丁用


def genIdsMap():
    mixin = []
    mixin.extend(getFilesList("data/IDS/日文"))
    mixin.extend(getFilesList("data/IDS/英文"))
    写入json(mixin, "data/ids-map/assets.json")


genIdsMap()
